bitkeeper revision 1.174.1.1 (3e9da471qg3yz_feoqPtr18G7aJ8UA)
authorkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Wed, 16 Apr 2003 18:44:01 +0000 (18:44 +0000)
committerkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Wed, 16 Apr 2003 18:44:01 +0000 (18:44 +0000)
ptrace.h, traps.c:
  Fix ring privilege checking in Xenolinux (OS runs in ring 1, not ring 0).

xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/traps.c
xenolinux-2.4.21-pre4-sparse/include/asm-xeno/ptrace.h

index a10c07a0ae1b9f46265921353ad3f63381123fee..c218067d2ab4862be07cbe55db47f614ba69e03b 100644 (file)
@@ -364,7 +364,7 @@ asmlinkage void do_debug(struct pt_regs * regs, long error_code)
     /* If this is a kernel mode trap, save the user PC on entry to 
      * the kernel, that's what the debugger can make sense of.
      */
-    info.si_addr = ((regs->xcs & 3) == 0) ? (void *)tsk->thread.eip : 
+    info.si_addr = ((regs->xcs & 2) == 0) ? (void *)tsk->thread.eip : 
                                             (void *)regs->eip;
     force_sig_info(SIGTRAP, &info, tsk);
 
index 83a1115ed620b08a78ac32959524547f7885f110..4457ac0b1731b2dcdffe91619c1a59a14db27efb 100644 (file)
@@ -55,7 +55,7 @@ struct pt_regs {
 #define PTRACE_O_TRACESYSGOOD     0x00000001
 
 #ifdef __KERNEL__
-#define user_mode(regs) ((regs) && (3 & (regs)->xcs))
+#define user_mode(regs) ((regs) && (2 & (regs)->xcs))
 #define instruction_pointer(regs) ((regs) ? (regs)->eip : NULL)
 extern void show_regs(struct pt_regs *);
 #endif